<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: O(∩_∩)O
// +----------------------------------------------------------------------
namespace plugins\mobile_code_link;
use cmf\lib\Plugin;
use think\Db;
/**
 * MobileCodeDemoPlugin
 */
class MobileCodeLinkPlugin extends Plugin
{

    public $info = [
        'name'        => 'MobileCodeLink',
        'title'       => '凌凯短信插件',
        'description' => '凌凯短信插件',
        'status'      => 1,
        'author'      => 'O(∩_∩)O',
        'version'     => '1.0'
    ];

    public $has_admin = 0;//插件是否有后台管理界面

    public function install() //安装方法必须实现
    {
        return true;//安装成功返回true，失败false
    }

    public function uninstall() //卸载方法必须实现
    {
        return true;//卸载成功返回true，失败false
    }
	
    //实现的send_mobile_verification_code钩子方法
    public function sendMobileVerificationCode($param)
    {
        $mobile        = $param['mobile'];//手机号
        $code          = $param['code'];//验证码
		$code          = rawurlencode(mb_convert_encoding($code, "gb2312", "utf-8"));
        $config        = $this->getConfig();
		$uid           = $config['account_name'];
		$passwd        = $config['account_password'];
        $expire_minute = intval($config['expire_minute']);
        $expire_minute = empty($expire_minute) ? 5 : $expire_minute;
        $expire_time   = time() + $expire_minute * 60;   
        $result        = [];
 
        $gateway       = "https://mb345.com/ws/BatchSend2.aspx?CorpID={$uid}&Pwd={$passwd}&Mobile={$mobile}&Content={$code}&Cell=&SendTime=";

		$jg = file_get_contents($gateway);
		if( $jg > 0 ){
			$result = [
				'error'     => 0,
				'message' => '',
				'expire_time' => $expire_time
			];
		}else{
			$result = [
				'error'     => 1,
				//'message' => '服务商返回结果错误'
				'message' => '发送失败, 请联系管理员,错误提示代码: '.$jg,
				'expire_time' => 0
			];
		}
		
        return $result;
    }
	/*
	**返回值参数所代表的含义**
	输出返回值参数	       状态说明
	大于0的数字	           提交成功
	–1	                   账号未注册
	–2	                   其他错误
	–3	                   帐号或密码错误
	–5	                   余额不足，请充值
	–6	                   定时发送时间不是有效的时间格式
	-7	                   提交信息末尾未签名，请添加中文的企业签名【 】
	–8	                   发送内容需在1到300字之间
	-9	                   发送号码为空
	-10	                   定时时间不能小于系统当前时间
	-100	               IP黑名单
	-102	               账号黑名单
	-103	               IP未导白
	*/	
}